<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        var name = 'Tom';
        (function () {
            if (typeof name == 'undefined') {
                name = 'Jack';
                console.log('Goodbye ' + name);
            } else {
                console.log('Hello ' + name);
            }
        })();
        // es6的数组去重新方法 
        // let arr = [1,2,2,3,3,4]
        let arr = ['我','你','你','她']
        let cc = new Set(arr)   // 伪数组
        console.log(cc)
        console.log(Array.from(cc))
        //求两个数组的交集元素
        let c1 = [1, 2, 3]
        let c2 = [1, 3, 4, 5]
        function getJiao(x, y) {
            let arr = [...x, ...y]
            let obj = {}
            let it = []
            console.log(arr)
            for (var i = 0; i < arr.length; i++) {
                //如果没有追加进去
                if (obj[arr[i]]) {
                    // 有了的  重复的 
                    it.push(arr[i])
                } else {

                    obj[arr[i]] = arr[i]
                }
            }
            return it
        }
        console.log(getJiao(c1, c2))

        // 写出一个函数能判断 给定得表达式中大括号是否闭合
        var expression = "{{}}{}{}"   //true
        var expressionFalse = "{}{{}"   //false
        // 只符合表达式得；
        function getFu(x) {
            let arr = Array.prototype.slice.call(x)
            let obj = {}
            let it = []
            console.log(arr)
            for (var i = 0; i < arr.length; i++) {
                //如果没有追加进去
                if (obj[arr[i]]) {
                    // 有了的  重复的 
                    it.push(arr[i])
                } else {
                    obj[arr[i]] = arr[i]
                }
            }
            // 除了{} 把其他重复的都加进去数组里
            if (it.length % 2 === 0) {
                //偶数
                return true
            } else {
                //奇数
                return false
            }

        }
        console.log(getFu(expression))

        // 坚哥得：：完整版：：
// 一左一右总的有。出现一个{,存一下，如果出现}就凑成一对，去掉{。继续走.如果存得为0，又出现}，说明抵消完了。没人给它配对。
        function isO(str) {
            const arr = []
            for (let item of str) {
                if (item === '{') {
                    arr.push(item)
                } else if (item === '}') {
                    if (arr.length === 0) {
                        return false
                    } else {
                        arr.pop()
                    }
                }
            }
            if (arr.length === 0) {
                return true
            } else {
                return false
            }
        }
        console.log(isO('{}{{}{}}'))

    </script>
</body>

</html>